const fs = require('fs');
const data = new Uint8Array( Buffer.from('Node.js中文网111') )

// 写入文件
// fs.writeFile('./aa.txt','测试内容','utf8',(err)=>{
//     console.log(err)
// })

// 追加内容
// fs.appendFile('文件.txt', data, 'utf8', (err)=>{
//     console.log(err)
// });

// 读取文件
// fs.readFile('./文件.txt',function(err,data){
//     console.log(data.toString())
// })

// 获取文件信息
// var st = fs.statSync('./文件.txt')
// console.log(st)

// 删除文件
// fs.unlink('./aa.txt', (err)=>{
//     if(err){
//         console.log('删除失败')
//     }else{
//         console.log('删除成功')
//     }
// })


// 文件夹操作==========

// 创建文件夹
// 注意不会递归创建 比如路劲 ./a/b/c 会创建失败，要自己封装方法
// fs.mkdir('./temp', (err)=>{
//     if(err){
//         console.log('创建失败')
//     }else{
//         console.log('创建ok')
//     }
// });

// 删除文件夹
// 不能删除非空文件夹
// fs.rmdirSync('./a')


// 删除非空文件夹
function removeDir(dirPath){
    // 读取文件夹内的文件、和文件夹
    let files = fs.readdirSync(dirPath);

    // console.log(files)
    files.forEach( child => {
        let childPath = dirPath + '/' + child;

        // console.log(childPath)
        // 如果是一个文件夹
        if(fs.statSync(childPath).isDirectory()){
            removeDir(childPath)
        }else if(fs.statSync(childPath).isFile()){
            fs.unlinkSync(childPath)
        }
    })

    // 删除文件夹
    fs.rmdirSync(dirPath)
}

removeDir('./aaa')


// 监听文件的变化
// fs.watchFile('./文件.txt', (curr, prev) => {
//     console.log(`当前的最近修改时间是: ${curr.mtime}`);
//     console.log(`之前的最近修改时间是: ${prev.mtime}`);
// });

// 监听文件夹变化
// fs.watch('./a', (eventType, filename) => {
//     console.log(`eventType: ${eventType}`);
//     console.log(`filename: ${filename}`);
// });